package com.atguigu.srb.sms.config;

import lombok.Data;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;

import javax.annotation.PostConstruct;

@Configuration
@Data
@ConfigurationProperties(prefix = "aliyun.sms")
public class SmsProperties implements InitializingBean {
    String host;
    String path;
    String method;
    String appcode;
    String tplId;
    //提供了每个属性对应的常量属性：在当前SmsProperties对象初始化后 将成员属性的值设置给静态属性
    public static String HOST;
    public static String PATH;
    public static String METHOD;
    public static String APPCODE;
    public static String TPL_ID;
    //静态属性初始化方式2：通过spring的管理bean的生命周期，在当前类对象的成员属性初始化完毕后 调用afterPropertiesSet
    @Override
    public void afterPropertiesSet() throws Exception {
        HOST = this.host;
        PATH = this.path;
        METHOD = this.method;
        APPCODE = this.appcode;
        TPL_ID = this.tplId;
    }

    //静态属性初始化方式1：使用了java的PostConstruct注解实现
//    @PostConstruct
//    public void init(){
//        //在容器创建当前类的对象后 该方法立即被调用 初始化静态属性
//        HOST = this.host;
//        PATH = this.path;
//        METHOD = this.method;
//        APPCODE = this.appcode;
//        TPL_ID = this.tplId;
//    }
}
